//
//  LBReactBridge+Native.h
//  LBReact
//
//  Created by WuShiHai on 19/5/24.
//  Copyright (c) 2019 Lebbay. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <React/RCTBridge.h>
#import "LBReactBridge.h"

typedef void(^LBRHTTPSuccessBlock)(NSDictionary *response);
typedef void(^LBRHTTPFailBlock)(NSError *error, NSDictionary *response);

@protocol LBReactBridgeNativeDelegate <NSObject>

/**
 用户的登录信息JSON串
 
 @return 字典
 */
- (NSDictionary *)userInfo;

/**
 POST请求
 
 @param URLString 路径
 @param bundleVersion 资源bundle的版本号
 @param parameters js返回的完整字典参数
 @param success 成功回调
 @param fail 失败回调
 */
- (void)POST:(NSString *)URLString
     version:(NSString *)bundleVersion
  parameters:(NSDictionary *)parameters
     success:(LBRHTTPSuccessBlock)success
        fail:(LBRHTTPFailBlock)fail;

/**
 上传
 
 @param URLString 路径
 @param bundleVersion 资源bundle的版本号
 @param filePath 文件本地路径
 @param fileKey 文件上传的key
 @param parameters js返回的完整字典参数
 @param success 成功回调
 @param fail 失败回调
 */
- (void)upload:(NSString *)URLString
       version:(NSString *)bundleVersion
      filePath:(NSString *)filePath
       fileKey:(NSString *)fileKey
    parameters:(NSDictionary *)parameters
       success:(LBRHTTPSuccessBlock)success
          fail:(LBRHTTPFailBlock)fail;
@end

/**
 LBReactNative模块供外部调用的类，主要业务使用类
 */
@interface LBReactBridge (Native)

/**
 混编使用代理
 */
@property (nonatomic, weak) id<LBReactBridgeNativeDelegate> delegate;



@end
